yum コマンドはパッケージがアップロードされているサーバーに問い合わせて、パッケージのダウンロードからインストールまでを自動的に実施するコマンドです。また、依存関係があるパッケージ(動作に必要な他のパッケージ)も自動的に入手してインストールします。システムにインストール済みのパッケージのアップデートも可能です。CentOSやFedora Coreなどでも標準として採用されています。
1.yum のインストール
yum は Fedora Core にデフォルトでインストールされています。インストールされていない場合はダウンロードします。
# rpm -q yum yum-2.0.7-1.1 |
yum を使う前に前もって /etc/yum.conf を編集しておきます。この設定ファイルでは、yum
でパッケージをダウンロードしてくる際に接続するサーバー名を指定します。出来る限り日本にあるサーバーで回線速度の速いサーバー(KDDI
や理研、IIJ など)を指定するべきです(※FC3 になると、/etc/yum.conf は直接編集せずとも、/etc/yum.repos.d/
以下にオリジナルなファイルを作成し、そこにサーバー名を記述しておけば良いようになっています。)
# vi /etc/yum.conf |
[base] name=Fedora Core $releasever - $basearch - Base baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$ARCH/os/ ftp://ftp.riken.go.jp/fedora/core/$releasever/$ARCH/os/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/$releasever/$ARCH/os/ [updates-released] baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releasever/$ARCH/ ftp://ftp.riken.go.jp/fedora/core/updates/$releasever/$ARCH/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releasever/$ARCH/ |
Fedora Core 3 ではじめてパッケージをインストールしようとした場合、以下のようなエラーが発生します。これは、FC
3ではパッケージのGPGキーチェックがデフォルトでオンになっているためです。
# yum install telnet |
You have enabled checking of packages via GPG keys. This is a good thing. However, you do not have any GPG public keys installed. You need to download the keys for packages you wish to install and install them. You can do that by running the command:rpm --import public.gpg.key For more information contact your distribution or package provider. |
yumコマンドを実行する前に、以下のコマンドを実行してGPGキーをインストールしておきます。
rpm --import /usr/share/rhn/RPM-GPG-KEY-fedora |
yum の使い方は簡単です。ソフトウェアをインストールするには、以下のコマンドを実行します。
# yum install パッケージ名 |
削除する場合は、
# yum remove パッケージ名 |
インストールされているパッケージ全てをまとめてアップデートするには、yum updateを実行します(注:カーネルもアップグレードされます)。このとき、-y
オプションをつけると途中で現れるメッセージに対して全て「Yes」で答えるようになります。予め全てのパッケージをアップグレードすることが決定しているような場合にはつけたほうが良いでしょう。なお、前もってアップデートパッケージがあるかどうかを確認する場合には、yum
check-updateを実行します。
# yum check-update |
Gathering header information file(s) from server(s) Server: Fedora Core 3 - i386 - Base Server: Fedora Core 3 - i386 - Released Updates Finding updated packages Downloading needed headers Name Arch Version Repo ---------------------------------------------------------- arts i386 8:1.4.2-0.fc3.3 updates-released cups i386 1:1.1.22-0.rc1.8.6 updates-released cups-libs i386 1:1.1.22-0.rc1.8.6 updates-released vim-common i386 1:6.3.086-0.fc3.1 updates-released vim-enhanced i386 1:6.3.086-0.fc3.1 updates-released vim-minimal i386 1:6.3.086-0.fc3.1 updates-released |
# yum update or # yum -y update |
特定のパッケージのみをアップデートする場合は、以下のようにします。
# yum update telnet |
yum update でまとめてupdate したいけれど特定のパッケージだけはアップデートを除外したいというような場合もあります。その場合は、/etc/yum.conf
の[main] に以下のような行を追加します。
# vi /etc/yum.conf |
[main] exclude= gcc* kde* openssh* kernel-smp* |
長い間、yum を使用しているとダウンロードしたアップデートパッケージ等のキャッシュ用のファイルも溜まってきます。yum
のキャッシュは/var/cache/yum に格納されており、現在どのぐらいの容量を占有しているかdu
で確認しておきます。必要なければ、yum clean でダウンロードしたパッケージや古いヘッダを削除します。
# du -sh /var/cache/yum/ |
32M /var/cache/yum/ |
# yum clean |
パッケージの検索を行いたい場合は、yum search を実行します。検索の対象となるは、RPMファイルの「Name」、「Packager」、「Dummary」、「Description」の各フィールドです。
# yum search telnet |
Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * extras: mirror.fairway.ne.jp * updates: www.ftp.ne.jp ============================= N/S Matched: telnet ============================== perl-Net-Telnet.noarch : Net-Telnet Perl module telnet.i686 : The client program for the Telnet remote login protocol telnet-server.i686 : The server program for the Telnet remote login protocol krb5-appl-clients.i686 : Kerberos-aware telnet, ftp, rcp, rsh and rlogin clients krb5-appl-servers.i686 : Kerberos-aware telnet, ftp, rcp, rsh and rlogin servers tn5250.i686 : 5250 Telnet protocol and Terminal Name and summary matches only, use "search all" for everything. |
# yum list |
xmms-skins i386 1:1.2.10-9 base xojpanel i386 0.91-9 base xorg-x11-Xdmx i386 6.8.2-1.FC3.13 updates-released xorg-x11-Xnest i386 6.8.2-1.FC3.13 updates-released ・・・ |
インストール済みのパッケージ一覧を表示するには、yum list installed を実行します。その他にも、available(インストール可能なパッケージのリストを表示する)、updates(アップデート可能なパッケージのリストを表示する)、recent(最近追加されたパッケージのリストを表示する)のオプションをつけることができます。
# yum list installed |
パッケージの情報を表示するには、yum info パッケージ名 を実行します。yum info だけだと、利用可能な全パッケージの情報が全て表示されてしまいます。その他にも、available(インストール可能なパッケージのリストを表示する)、updates(アップデート可能なパッケージのリストを表示する)、recent(最近追加されたパッケージのリストを表示する)のオプションをつけることができます。
# yum info openssh |
省略 Name : openssh Arch : i386 Version : 3.9p1 Release : 8.0.2 Size : 730.83 kB Group : アプリケーション/インターネット Repo : Locally Installed Summary : SSHプロトコルのバージョン1と2のOpenSSH 実装 Description: OpenSSHはSSH (Secure SHell)プロトコルのOpenBSDによる実装です。SSHは rlogin や rsh の代わりに使用するプログラムで、 信頼性の低い 2 台のホストの間で安全でないネットワークを経由して、 暗号化された安全な通信を実行できます。X11 接続および任意の TCP/IP ポートも安全なチャネル経由で転送できます。共有鍵認証でサーバにパスワード なしでアクセスすることもできます。 このパッケージには、OpenSSH のクライアントとサーバーの両方に必要なコアファイルが 含まれています。このパッケージを利用するには、openssh-clients または openssh-server、あるいはその両方をインストールする必要があります。 |
パッケージをインストールしようとした際に、特定のライブラリが開けない(存在しない)ために、インストールできなかったり、コンパイルエラーになったりすることはよくある話しです。そこで存在しないと言われているそのファイルがどのパッケージに含まれているかを調べることで、どのパッケージをインストールすればいいのかがすぐにわかります。
# yum provides libg2c.so.0 |
省略 Looking in available packages for a providing package No packages found Looking in installed packages for a providing package Installed package: libf2c.i386 0:3.4.4-2.fc3 matches with /usr/lib/libg2c.so.0 Installed package: libf2c.i386 0:3.4.4-2.fc3 matches with /usr/lib/libg2c.so.0.0.0 Installed package: libf2c.i386 0:3.4.4-2.fc3 matches with libg2c.so.0 3 results returned |
FC3からは、/etc/yum.conf のデフォルトの記述方法が変更されており、/etc/yum.repos.d/ 以下にオリジナルのファイルを作成し、そこにyum
でアクセスするためのサーバーを指定すればいいようになっています。まずは、base 用とupdates 用の2つのオリジナルファイルを作成します。
# vi /etc/yum.repos.d/local-base |
http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$ARCH/os/
ftp://ftp.riken.go.jp/fedora/core/$releaseve/$ARCH/os/
ftp://ftp.iij.ad.jp/pub/linux/fedora/core/$releaseve/$ARCH/os/
|
# vi /etc/yum.repos.d/local-updates |
http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releaseve/$ARCH/ ftp://ftp.riken.go.jp/fedora/core/updates/$releaseve/$ARCH/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releaseve/$ARCH/ |
次に、/etc/yum.repos.d/fedora.repoと/etc/yum.repos.d/fedora-updates.repoを以下のように編集しておきます。
# vi /etc/yum.repos.d/fedora.repo |
[base]
name=Fedora Core $releasever - $basearch - Base
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
#mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever
mirrorlist=file:///etc/yum.repos.d/local-base
enabled=1
gpgcheck=1 |
# vi /etc/yum.repos.d/fedora-updates.repo |
[updates-released] name=Fedora Core $releasever - $basearch - Released Updates #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/ #mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever mirrorlist=file:///etc/yum.repos.d/local-updates enabled=1 gpgcheck=1 |
yum [オプション] [パッケージファイル名] |
|
コマンド | 説明 |
---|---|
check-update | アップデート可能なパッケージの一覧を表示 |
clean | ダウンロードしたパッケージと古いヘッダを削除する |
clean-oldheaders | 古いヘッダを削除 |
clean packages | ダウンロードしたパッケージを削除 |
info | 利用可能なパッケージの一覧を表示 |
info <パッケージ名> | 指定したパッケージの情報を表示 |
install <パッケージ名> | 指定したパッケージのインストール |
list | 利用可能なパッケージの一覧を表示 |
list installed | インストール済みのパッケージ一覧を表示 |
list updates | アップデート可能なパッケージの一覧を表示 |
provides <パッケージ名> | パッケージに含まれるファイルの一覧を表示 |
remove <パッケージ名> | 指定したパッケージをアンインストールする 指定したパッケージの依存関係があるパッケージは削除するかどうか確認を求める |
search <キーワード> | キーワードでパッケージを検索する |
update | アップデート可能な全パッケージをアップデート |
update <パッケージ名> | 指定したパッケージをアップデート |
yumdownloader は、rpmファイルを個別にダウンロードします。
● yumdownloader コマンド構文
yumdownloader [オプション] [パッケージファイル名] |
|
--destdir=DESTDIR --urls |
別の場所にダウンロードする場合 |
--resolve | 依存関係で必要なパッケージをダウンロードする必要がある場合 |
--source | RPMではなく、ソースファイル(SRPM)をダウンロード |
--archlist=ARCHLIST | アーキテクチャを指定 |
www.it-shikaku.jp